const vueConfig = require('../vue.config.js')
const path = require('path')
const chalk = require('chalk')
const fs = require('fs')
const serialize = require('./serialize')

module.exports = function (name, title) {
  const configUrl = path.resolve(process.cwd(), './vue.config.js')
  const page = {
    // 应用入口配置，相当于单页面应用的main.js，必需项
    entry: `src/modules/${ name }/${ name }.js`,

    // 应用的模版，相当于单页面应用的public/index.html，可选项，省略时默认与模块名一致
    template: `public/${ name }.html`,

    // 编译后在dist目录的输出文件名，可选项，省略时默认与模块名一致
    filename: `${ name }.html`,

    // 标题，可选项，一般情况不使用，通常是在路由切换时设置title
    // 需要注意的是使用title属性template 中的 title 标签需要是 <title><%= htmlWebpackPlugin.options.title %></title>
    title: `${ title }`,
  }
  vueConfig.pages[name] = page


  var config = `module.exports = ${ serialize(vueConfig) } `
  // 给 /api 加上 ''
  config = config.replace('^/api',"'^/api'")
  
  try {
    fs.writeFileSync(configUrl, config, 'utf8')
    console.log(chalk.blue('ok >>>'), 'vue.config.js文件写入完成')
  } catch (err) {
    console.log(chalk.red(err))
  }
}